Methods, apparatus and articles of manufacture to determine routing for identical virtual private network (vpn) numbers assigned to multiple companies

ABSTRACT

Example methods, apparatus and articles of manufacture to determine routing for identical virtual private network (VPN) numbers assigned to multiple companies are disclosed. A disclosed example method includes receiving a query from a switch module to determine routing information for a call initiated by a calling party, the query including dialed digits, a calling party identifier, and a route identifier representative of a route via which the call was initiated, selecting a private VPN number look-up table from a plurality of private VPN number look-up tables based on the calling party identifier, and to perform a lookup within the selected private VPN number look-up table based on a portion of the dialed digits and the route identifier, the lookup to identify the routing information associated with the dialed digits, and transmitting the routing information to the switch module.

RELATED APPLICATION

This patent arises from a continuation of U.S. patent application Ser.No. 11/016,355, entitled “Virtual Private Network Dialed Number Natureof Address Conversion,” which was filed on Dec. 17, 2004, and which ishereby incorporated by reference in its entirety.

BACKGROUND

The world has changed a lot in the last couple of decades. Instead ofsimply dealing with local or regional concerns, many businesses now haveto think about global markets and logistics. Many companies havefacilities spread out across the country or around the world. To connectbetween these facilities these companies have used dedicated privatenetworks, such as a plurality of centrex or private branch exchanges(PBXs) tied together by dedicated lines. These networks, however,require high capital costs and create maintenance headaches.

Virtual private networks (VPNs) have been created to reduce the need fordedicated private networks. A VPN is a software-defined network offeringthe appearance, functionality and usefulness of a dedicated privatenetwork, at a significant price savings.

SUMMARY

More and more companies are establishing VPNs to interconnect theiroffices. VPN customers can also utilize the 700+7 digits dialing as partof their VPN dial plan. As such, the amount of 700+7 digit numbers usedas VPN numbers that are available can become exhausted for any VPNservice provider. A need exists to allow identical VPN numbers to beassigned to multiple companies or business groups, thereby creating aninexhaustible amount of VPN numbers.

The present invention provides a method and system for handlingidentical VPN numbers assigned to multiple companies using a nature ofaddress/number identifier initiated as public. The method can includereceiving a query from a switch module to determine routing informationfor a call initiated by a calling party, the query including dialeddigits with a nature of address identifier, a calling party identifier,and then updating the nature of address identifier associated withdialed digits to a private type code if a VPN coding identifier isdetermined present, looking up routing information associated with thedialed digits in a look-up table corresponding to the calling partyidentifier if the nature of address identifier includes the private typecode, and transmitting the routing information to the switch module. Thecall can be initiated using a voice over internet protocol device.

The VPN coding identifier can be determined present when a length of thedialed digits equals a predetermined length and a portion of the dialeddigits corresponds to the VPN coding identifier. The portion of thedialed digits can be the leading three digits of the dialed digits andthe VPN coding identifier can be “7” “0” “0”. The calling partyidentifier is associated with a VPN business group associated with thecalling party. The look-up table can be a private number look-up tableassociated with the VPN business group.

The invention has many advantages. For example, the invention eliminatesthe requirement to enter a VPN (700)+seven digit (7D) number in a publicnumber table. Elimination of the VPN+7D number from the public numbertable allows VPN service requests to bypass a public number lookup tablefor VPN+7D numbers, thereby allowing identical VPN+7D numbers formultiple VPN customer-specific private number tables. That is, eachprivate number table entry for a VPN+7D number can specify a route setindependent of another customer's routing for the same dialed VPN+7Dnumber.

BRIEF DESCRIPTION OF DRAWINGS

The foregoing and other objects, features and advantages of theinvention will be apparent from the following more particulardescription of preferred embodiments of the invention, as illustrated inthe accompanying drawings in which like reference characters refer tothe same parts throughout the different views. The drawings are notnecessarily to scale, emphasis instead being placed upon illustratingthe principles of the invention.

FIG. 1 is a schematic diagram of a network 100 capable of implementingthe invention; and

FIGS. 2A and 2B illustrate a flow chart of an embodiment of the steps ofthe invention performed from call initiation to call termination.

DETAILED DESCRIPTION

A description of preferred embodiments of the invention follows.

Telecommunications networks use switches to process calls and set-upconnections. The switches need to communicate with one another in orderto accomplish this function. These communications between switches areknown as signaling. A well-known example of signaling is SignalingSystem #7 (SS7). Signaling is different than the actual user traffictransported over the connections set-up by a call. Signaling is thecommunications which occur in order to set-up and tear down callconnections.

Signaling has attained additional functionality with the evolution ofwhat is called the advanced intelligent network (AIN). In the AIN,switches are supported by external processors and databases. Switchesprocess the signaling they receive to process calls. During thisprocessing, the switch CPU may recognize that it needs the support ofexternal processing or data. To obtain this support, the switch CPU andsignaling point will generate a new signaling message to send to anexternal processor. The new signaling message is known as a query. Theexternal processor will process the query and respond to the same switchwith a signal containing additional information to support the switch.

One example of an AIN operation is the VPN initiated call. For VPNcalls, a switch will receive a call set-up message including the dialednumber. In SS7, this is an initial address message (IAM). The switchwould process the LAM until it recognized that the calling party numberhad a VPN identifier (in this case the originating entity;calling/charge party number), and that the switch would require supportfrom an external database to obtain a standard telephone number or otherrouting information it can use to route the call. This act ofrecognition is known as a trigger. The standard telephone number isknown colloquially as a plain old telephone service (POTS) number. Assuch, the switch would generate a signaling message to send to anexternal database. In SS7, this is a transaction capabilitiesapplication part (TCAP) message and is commonly known as a query. Theexternal processor that receives the TCAP query is known as a servicecontrol point (SCP). The SCP analyzes the query and typically respondsto the switch with the appropriate POTS number or network trunk routeinformation. The switch can then process the call in a conventionalfashion.

Generally, the subject invention uses the Advanced Intelligent Networkto connect multiple calls from different companies having an identicalcalled number (10 digit). That is, different users from differentcompanies can dial the same number and be connected to an associatednumber or destination within the user's respective company.

FIG. 1 is a schematic diagram of a network 100 capable of implementingthe invention. It should be understood that the network 100 is shown forsimplicity only. The network 100 consists, for example, of fourlocations A-D for one company (110, 120, 130, and 140 respectively).Each location (A-D) includes a plurality of telephone devices. Forexample, location A 110 may include telephone devices 112 a . . . 112 n,location B 120 may include telephone devices 122 a . . . 122 n, locationC 130 may include telephone devices 132 a . . . 132 n, and location D140 may include telephone devices 142 a . . . 142 n. These locations(A-D) are interconnected through the company's chosen interexchangecarrier network (IXC) 150 via local exchange carries (LECs) 114, 144 orthrough private branch exchanges (PBXs) or customer premise equipment(CPE) 124, 134. Interconnection between these locations is known in theart.

In an embodiment, the telephone devices 112, 122, 132, and 142 may bevoice over internet protocol (VOIP) devices which connect to the IXC 150through a VOIP gateway contained within the LECs 114, 144 and or thePBX/CPEs 124, 134.

The IXC 150 includes signal switching points (SSPs) 152, 154interconnected via an Inter-Machine Trunk (IMT) 168. These SSPs may befor IXC tandem switches for example. The IXC 150 also includes signaltransfer points (STPs) 158 a . . . 158 n and signal control points(SCPs) 160 a . . . 160 n. The STPs 158 a . . . 158 n shuttle messagesbetween the SSPs 152, 154 and the SCPs 160 a . . . 160 n. These messagesare typically communicated using out of band signaling, such assignaling system 7 (SS7) protocol.

By way of a general example, the user at location A 110 places a callusing a telephone 112 to a telephone (or VOIP device) at location D 140,by dialing a ten digit number (e.g., 700-220-4438). Associated with thedialed number are a nature of address/number identifier, and a callingparty VPN identifier. The VPN identifier can be the calling partynumber, a remote access number or a trunk group. Although “700” is usedin this example, one skilled in the art would recognize that any numbercan be used as the VPN identifier.

The LEC 114 (or VOIP gateway) switch routes the dialed number to the SSP152. The SSP 152 triggers on the VPN identifier and sends a query 164over the SS7 signal link to the SCP 160. The SCP 160 determines atranslated routing number (e.g., 734-636-3222) based on the dialednumber and the calling party which is the VPN identifier. The SCP 160may also determine billing information at this point.

The SCP 160 then sends a response 166 with the billing information andthe translated routing number to the SSP 152. The SSP 152 then routesthe call over the IMT 168 to the SSP 154.

The SSP 154 then routes 170 the call to the LEC 144 switch. The LEC 144switch then routes the call to the called party 734-636-3222 at locationD 140 on telephone 142 n (or VOIP device).

FIGS. 2A and 2B is a flow chart of an embodiment of the steps performedfrom call initiation to call termination. Three types of access areshown: remote access 200 a, switched access 200 b, and dedicated access200 c. VOIP access is well known in the art and is not shown forsimplicity.

For remote access 210 a, the LEC (114 FIG. 1) receives an off-hooksignal. The LEC then sends a dial tone to the originating telephone. Acustomer dials a remote access number which includes a plurality ofdialed digits (e.g. 800-555-1234). The remote access number may be atoll free number (TFN). The LEC receives the plurality of dialed digits(e.g. 800-555-1234) at step 210 a. The LEC then performs a lookup in aTFN national service management system (SMS) database to determinerouting information associated with the dialed digits at step 220 a. TheLEC then routes the call to the appropriate IXC (SSP 152, FIG. 1). TheSSP determines if the customer is requesting VPN service at step 230 a.The customer is prompted for an authentication number and ifauthenticated, the called number (e.g., 700-220-4438) at step 236. TheSSP then launches a query to the SCP (160 FIG. 1) requesting routinginformation at step 240 a. The SCP may be an advanced intelligentnetwork (AIN). The query may include the TFN or universal access numberand the called number. The remaining process will be discussed belowwith reference to FIG. 2B.

For switched access 210 b, the LEC (114 FIG. 1) receives an off-hooksignal. The LEC then sends a dial tone to the originating telephone. Acustomer dials a plurality of dialed digits (e.g. 1-700-220-4438). TheLEC receives the plurality of dialed digits (e.g. 1-700-220-4438) atstep 210 a. Information included in the call setup is a calling partyidentifier and a called party number with a nature of address/numberidentifier. The LEC then determines which primary interexchange carrier(PIC) is associated with the call at step 220 b. The LEC then routes thecall to the associated IXC (SSP 152, FIG. 1). The SSP determines if thecustomer is requesting VPN service at step 230 b. The determination isbased on an IXC identifier, for example SBC Long Distance (SBCLD), andVPN automatic number identification (ANI). If SBCLD and VPN ANI arepresent, the SSP launches a query to the SCP (160 FIG. 1) requestingrouting information at step 240 b. The SCP may be an advancedintelligent network (AIN). The query may include the calling partyidentification/charge number and the dialed number (e.g. 700-220-4438)with a nature of address/number identifier (public). The remainingprocess will be discussed below with reference to FIG. 2B.

For dedicated access 210 c, the IXC (SSP 152 FIG. 1) receives anoff-hook signal. The IXC then sends a dial tone to the originatingtelephone. A customer dials a plurality of dialed digits (e.g.1-700-220-4438). The IXC receives the plurality of dialed digits (e.g.1-700-220-4438) at step 210 c. Information included in the call setup isa calling party identifier and a called party number with a nature ofaddress/number identifier. The IXC determines if the customer isrequesting VPN service at step 230 c. The determination is based on aVPN identifier and switch identification (SwID)/trunk group number (TGN)identifier. If VPN and SwID/TGN are present, the IXC launches a query tothe SCP (160 FIG. 1) requesting routing information at step 240 c. TheSCP may be an advanced intelligent network (AIN). The query may includethe SwID/TGN, the calling party identifier, and the dialed number (e.g.700-220-4438). The dialed number may be a private number or a publicnumber associated with the nature of address/number identifier. Theremaining process will be discussed below with reference to FIG. 2B.

As shown in FIG. 2B, the SCP receives and decodes the query to determinethe type VPN service at step 250. The SCP then determines if the callwas originated from a remote location, a switched location, or alocation having dedicated access and what VPN group is associated withthe dialed number at step 254. The VPN group is determined from thecalling party identifier. The dialed digits are then examined todetermine the length of digits at step 256. If the length of digitsequals a predetermined length, e.g., ten, then the dialed digits arefurther examined to determine if the digits contain a VPN identifier atstep 258. If the length of digits does not equal ten or include a VPNidentifier then the call is processed using existing logic at step 262.If the dialed digits include a VPN identifier, the nature ofaddress/number (NOA) associated with the dialed digits is updated to bea private number at step 260. One example of a VPN identifier is theleading three digits or area code being “7” “0” “0”.

The NOA for the dialed digits is then reexamined to determine if the NOAis associated with an international number, a public number, or aprivate number at step 264. If the NOA is associated with aninternational number the call is routed to the SSP with theinternational routing information at step 266. If the NOA is associatedwith a public number, a public number table is searched to locate therouting number associated with the dialed number (e.g. 800-555-1212) atstep 268 and the call is routed to the SSP with the public routinginformation at step 270. The public number table is a databasecontaining routing information related to numbers associated with apublic number NOA.

If the NOA is associated with a private number, a private number tableassociated with the VPN group is searched to locate the routing numberassociated with the dialed number (e.g. 700-220-4438) at step 272. Asexplained above, the VPN group is determined from the calling partyidentifier. If the routing number is found in the private number tablethe call is routed to the SSP with the private routing information atstep 274. If no number is found the call is disconnected at step 278.

In the particular example illustrated in FIG. 1, the dialed number (e.g.700-220-4438) has been assigned to a particular customer for locationsA-D. The particular customer also has an assigned VPN group. For thisVPN group, the routing number is found in the private number table ofthe corresponding VPN group and is 734-636-3222. It should be understoodthat for a different VPN group, the lookup occurs with respect to adifferent private number table, yielding a different routing number forthe identical dialed digits. Thus, multiple companies can use identicalVPN (700) numbers simultaneously.

The updating of the NOA to a private number allows VPN calls to belinked to a private number table based the calling party identification.This effectively increases the amount of VPN number availability to aninexhaustible amount, now allowing identical numbers to be assigned tomultiple companies. If the NOA is not updated there would be potentialduplicate numbers in the public number table and thus call routing wouldfail because duplicates are not allowed.

While this invention has been particularly shown and described withreferences to preferred embodiments thereof, it will be understood bythose skilled in the art that various changes in form and details may bemade therein without departing from the scope of the inventionencompassed by the appended claims.

1. A method for determining routing for virtual private network (VPN)numbers, the method comprising: receiving a query from a switch moduleto determine routing information for a call initiated by a callingparty, the query including dialed digits, a calling party identifier,and a route identifier representative of a route via which the call wasinitiated; selecting a private VPN number look-up table from a pluralityof private VPN number look-up tables based on the calling partyidentifier, and to perform a lookup within the selected private VPNnumber look-up table based on a portion of the dialed digits and theroute identifier, the lookup to identify the routing informationassociated with the dialed digits; and transmitting the routinginformation to the switch module.
 2. A method as defined in claim 1,wherein the calling party identifier is associated with a VPN group. 3.A method as defined in claim 2, wherein the private VPN number look-uptable is associated with the VPN group.
 4. A method as defined in claim1, wherein performing the lookup of the routing information associatedwith the dialed digits in the selected private VPN number look-up tablecomprises performing a query of the selected private VPN number look-uptable based on a portion of the dialed digits.
 5. An apparatus fordetermining routing for virtual private network (VPN) numbers, theapparatus comprising: a receiving module to receive a query from aswitch module to determine routing information for a call initiated by acalling party, the query including dialed digits, a calling partyidentifier, and a route identifier representative of a route via whichthe call was initiated; a look-up module to select a private VPN numberlook-up table from a plurality of private VPN number look-up tablesbased on the calling party identifier, and to perform a lookup withinthe selected private VPN number look-up table based on a portion of thedialed digits and the route identifier, the lookup to identify therouting information associated with the dialed digits; and atransmitting module to transmit the routing information to the switchmodule.
 6. An apparatus as defined in claim 5, wherein the calling partyidentifier is associated with a VPN group.
 7. An apparatus as defined inclaim 6, wherein the private VPN number look-up table is associated withthe VPN group.
 8. An apparatus as defined in claim 5, wherein performingthe lookup of the routing information associated with the dialed digitsin the selected private VPN number look-up table comprises performing aquery of the selected private VPN number look-up table based on aportion of the dialed digits.
 9. An article of manufacture storingmachine accessible instructions that, when executed, cause a machine to:receive a query from a switch module to determine routing informationfor a call initiated by a calling party, the query including dialeddigits, a calling party identifier, and a route identifierrepresentative of a route via which the call was initiated; select aprivate virtual private network (VPN) number look-up table from aplurality of private VPN number look-up tables based on the callingparty identifier, and to perform a lookup within the selected privateVPN number look-up table based on a portion of the dialed digits and theroute identifier, the lookup to identify the routing informationassociated with the dialed digits; and transmit the routing informationto the switch module
 10. An article of manufacture as defined in claim9, wherein the calling party identifier is associated with a VPN group.11. An article of manufacture as defined in claim 10, wherein theprivate VPN number look-up table is associated with the VPN group. 12.An article of manufacture as defined in claim 9, wherein the machinereadable instructions, when executed, cause the machine to perform thelookup of the routing information associated with the dialed digits inthe selected private VPN number look-up table by performing a query ofthe selected private VPN number look-up table based on a portion of thedialed digits.